我们设 $n \leq m$ ,然后开始推式子,我们将 $gcd(i,j)$ 的值作为 “$d$” 提出来:
$\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor }\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}[gcd(i,j)=1]$ 是个熟悉的式子,我们从这个式子继续开刀:
于是原来的式子变成了:
设 $T=dx$ ,并将 $T$ 提出来枚举:
这个样子多好啊,我们可以将可爱的 $(\prod_{d|T} f[d]^{\mu( \lfloor\frac{T}{d}\rfloor )})$ 预处理,也就是枚举每一个 $d$ ,然后将可以整除 $d$ 的每一个 $T$ 都算上 $d$ 带来的贡献即可。最后的时候可以整除分块。最终的时间复杂度为 $O(\sqrt{n})$ ,当然不算上预处理时候的复杂度,如果加上预处理的复杂度,最终的复杂度应该为 $O(N(log\ N+log\ mod)+T(\sqrt{n} \ log\ mod))$ ,$log\ mod$ 就是算逆元的复杂度。
Code:
1 |
|
本文标题:【题解】[SDOI2017]数字表格 莫比乌斯反演 luoguP3704
文章作者:Qiuly
发布时间:2019年04月10日 - 00:00
最后更新:2019年04月10日 - 22:10
原始链接:http://qiulyblog.github.io/2019/04/10/[题解]luoguP3704/
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。